package com.cloud.security.service;

import com.cloud.common.domain.Result;
import com.cloud.domain.LoginUser;
import com.cloud.entity.AuthBody;

/**
 * 账户鉴权管理
 */
public interface ISecurityService {

    /**
     * 删除账户授权信息(退出登录)
     */
    public void deleteLoginInfo();

    /**
     * 获取Base64图形验证码
     */
    public Result queryCode();

    /**
     * 创建Token登录授权
     */
    public String createToken(LoginUser loginUser);

    /**
     * 刷新账户授权信息
     */
    public void setAuthUserInfo();

    /**
     * 设置关联账户/权限/Token
     */
    public boolean setProjectByCode(LoginUser loginUser);

    /**
     * 根据Token获取账户登录信息
     */
    public Result getUserToken();

    /**
     * 校验接口权限
     */
    public Result checkAuthority(String permission);

    /**
     * 根据Token获取账户信息
     */
    public LoginUser getLoginUser(AuthBody authBody);

}
